package com.yiren.dbaa.module.common.contract;

import android.widget.TextView;

import com.yiren.dbaa.currency.api.CommonCallBack;
import com.yiren.dbaa.module.common.bean.LoginQrcodeBean;
import com.yiren.dbaa.module.common.bean.UserConfigBean;

/**
 * @author lwb
 * @date : 2022/7/4 11:45
 * @description: 首页契约类
 */
public interface MainContract {

    interface Presenter {

        /**
         * 获取设备编码
         */
        void getDeviceNumber(View v);

        /**
         * 点击进入练车设置
         *
         * @param examModel 考试模式
         */
        void prepareExam(String examModel, View v);

        /**
         * 定位状态
         */
        void showPopWindowSatellites(TextView view);

        /**
         * 获取设备风控结果
         */
        void getDeviceRiskResult();

        /**
         * 获取教练登录二维码
         */
        void getCoachLoginQrCode(View v);

        /**
         * 检测教练扫码
         *
         * @param code 二维码标识码
         */
        void checkCoachSweepCode(String code, View view);

        /**
         * 账号密码登录
         *
         * @param phone
         * @param password
         * @param view
         */
        void accountLogin(String phone, String password, View view);

        /**
         * 关闭所有计时
         */
        void removeAllCallBack();
        /**
         * 验证user.db
         */
        boolean verifyUserDb();
    }

    interface Model {

        /**
         * 根据ICCID获取流量卡信息
         */
        void getSimCardInfo(CommonCallBack callBack);

        /**
         * 获取教练登录二维码
         */
        void getCoachLoginQrCode(CommonCallBack callBack);

        /**
         * 检测教练扫码
         *
         * @param code
         * @param callBack
         */
        void checkCoachSweepCode(String code, CommonCallBack callBack);

        /**
         * 提交登录账号密码
         *
         * @param phone
         * @param password
         */
        void postMapLogin(String phone, String password, CommonCallBack callBack);

        /**
         * 获取用户信息
         */
        void getUserInfo(CommonCallBack callBack);

        /**
         * 保存用户信息到本地
         */
        void saveUserInfo2Local(UserConfigBean userConfigBean);

        /**
         * 设置用户db路径，并且刷新
         */
        boolean checkUserDb();

        /**
         * 清除用户信息
         */
        void clearUserInfo();

    }

    interface View {

        /**
         * 显示设备编码
         */
        void showEquipmentIdState(String equipmentId);

        /**
         * 显示没有下载考场数据对话框
         */
        void showNoSiteDataDialog();

        /**
         * 显示风控对话框
         *
         * @param examModel 考试模式
         * @param type
         * @param reason
         * @param url
         */
        void showRiskControlDialog(String examModel, int type, String reason, String url);

        /**
         * 设置教练登录二维码
         */
        void setCoachLoginQrCode(LoginQrcodeBean coachQrCodeBean);

        /**
         * 教练登录完成
         */
        void coachLoginComplete();

        /**
         * 教练登录失败
         */
        void coachLoginFail(String error);

        /**
         * 检测教练扫码
         */
        void checkCoachSweepCode();


        /**
         * 获取用户信息成功
         */
        void getUserInfoSuccess();
    }

}
